<?php

use think\facade\Route;

/** 站点配置-接口路由 */
Route::group('site', function () {
    // 发现页
    Route::group('discovery', function () {
        Route::get('items$', '@items');
        Route::group('items/<id>', function () {
            Route::get('edit', '@editItem'); // 编辑界面
            Route::put('$', '@editItem'); // 保存编辑
            Route::put('<field>$', '@editItemField'); // 编辑指定字段
        })->pattern(['id' => '\d+', 'field' => '[a-zA-Z_]+']);
    })->prefix('\app\admin\service\site\discovery\Config');
    // 个人中心
    Route::group('personal', function () {
        // 更新分组名称
        Route::put('group/<gid>/title', '@updatedGroupTitle')->pattern(['gid' => '\d+']);
        Route::put('group/<gid>/status', '@updatedGroupStatus')->pattern(['gid' => '\d+']); // 更新组所有菜单状态
        Route::put('group/<gid>/sort', '@updatedGroupSort')->pattern(['gid' => '\d+']); // 更新组排序
        Route::get('items/<type>$', '@items');
        // 编辑
        Route::group('items/<id>', function () {
            Route::get('edit', '@editItem'); // 编辑界面
            Route::put('$', '@editItem'); // 保存编辑
            Route::put('<field>$', '@editItemField'); // 编辑指定字段
        })->pattern(['id' => '\d+', 'field' => '[a-zA-Z_]+']);

    })->prefix('\app\admin\service\site\personal\Config');
    // 个人中心-排版配置
    Route::get('personal/display$', '\app\admin\service\system\Config@getConfig')->append(['__key' => 'site.personal.display']);
    // 课程列表-排版配置
    Route::get('course/display', '\app\admin\service\system\Config@getConfig')->append(['__key' => 'site.course.display']);
    // 主题
    Route::group('theme', function () {
        // 主题色
        Route::get('/color', 'getConfig')->append(['__key' => 'site.theme.color']);
    })->prefix('\app\admin\service\system\Config@');
    /** 底部导航配置 */
    Route::group('navi/bottom', function () {
        Route::get('list', 'index'); // 列表数据
        Route::group('<pid>', function () {
            Route::get('create', 'create'); // 创建-页面
            Route::post('create', 'create'); // 创建-提交
        })->pattern(['pid' => '\d+']);

        Route::group('group', function () {
            Route::post('create', 'createGroup'); // 创建导航分组
            Route::put('<id>/edit', 'editGroup')->pattern(['id' => '\d+']); // 编辑导航分组
        });
        // 操作相关
        Route::group('/<id>', function () {
            Route::get('children', 'getChildren'); // 获取对应分组的导航列表
            Route::get('edit', 'update'); // 修改-页面
            Route::put('edit', 'update'); // 修改-提交
            Route::delete('delete', 'delete'); // 删除
            Route::put('sort', 'updateSort'); // 排序
        })->pattern(['id' => '\d+']);
    })->prefix('\app\admin\service\site\navi\NaviBottom@');
    /** 顶部导航配置 */
    Route::group('navi/top', function () {
        Route::get('list', '@index'); // 列表数据
        Route::group('<pid>', function () {
            Route::get('children', '@getChildren'); // 获取对应分组的导航列表
            Route::get('create', '@create'); // 创建-页面
            Route::post('create', '@create'); // 创建-提交
        })->pattern(['pid' => '\d+']);
        // 操作相关
        Route::group('/<id>', function () {
            Route::get('edit', '@update'); // 修改-页面
            Route::put('edit', '@update'); // 修改-提交
            Route::delete('delete', '@delete'); // 删除
            Route::put('sort', '@updateSort'); // 排序
        })->pattern(['id' => '\d+']);

        // 跳转内容选项
        Route::get('content/options', '@contentOptions');
    })->prefix('\app\admin\service\site\navi\NaviTop');
    // 站点信息
    Route::get('config/info', '\app\admin\service\site\Config@info');
    // 机构APP
    Route::get('config/school/app', '\app\admin\service\site\Config@schoolApp');
    // 后台logo地址
    Route::get('config/info/admin/logo', '\app\admin\service\site\Config@adminLogo');
    /** 模板配置 */
    Route::group('template', function () {
        // 模板列表
        Route::get('list', '@index');
        // 创建
        Route::post('create', '@created');
        // 操作
        Route::group('<id>', function () {
            Route::put('edit$', '@updated'); // 修改 - 提交
            Route::get('data', '@getData'); // 获取模板配置
            Route::post('save', '@saveData'); // 保存模板配置
            Route::delete('$', '@deleted'); // 删除
            Route::put('edit/<field>$', '@updatedBy')->pattern(['field' => '[a-zA-Z_]+']);;// 编辑指定字段
        })->pattern(['id' => '\d+']);
    })->prefix('\app\admin\service\site\Template');
});
